package com.gpStudy.design.single;

import java.io.Serializable;

/**
 * 懒汉式，
 *  多线程条件下，会出现多个实例
 */
public class LazySingleton implements Serializable {

    // 构造方法虽然私有化了，但是使用单例的方式还是能调用到
    private LazySingleton() throws Exception {
        if (null != lazySingleton){
            throw new RuntimeException("不允许创建多个实例");
        }
    }

    private static LazySingleton lazySingleton;

    public static LazySingleton getInstance(){
        if(null == lazySingleton){

            try {
                lazySingleton = new LazySingleton();
            } catch (Exception e) {
                e.printStackTrace();
            }

        }
        return lazySingleton;
    }

    private Object readResolve(){
        return lazySingleton;
    }
}
